// pages/home/index.js
import request from "../../utils/axios"
Page({
  /**
   * 页面的初始数据
   */
  data: {
    messages: [
      { sender: 'userA', text: '你好，作为聊天机器人，我可以做很多事情。' }
    ],
    questionId: Date.now(), // 根据需要初始化
    newMessage:"",
    sending:false,
    scrollTop: 0,
    textareaHeight: 40, // 初始高度
    maxTextareaHeight: 120 // 最大高度
  },
  // 处理输入
  handleInput(e) {
    const value = e.detail.value;
    this.setData({
      newMessage: value
    });

    // 动态调整高度
    const lineHeight = 40; // 行高
    let lines = 1;
    if (!value.length==0) {
      lines = Math.min(Math.ceil(value.length / 12), 6); // 计算行数，最多扩展6行
    }
    const newHeight = lines * lineHeight;

    this.setData({
      textareaHeight: Math.min(newHeight, this.data.maxTextareaHeight)
    });
  },
  // 滚动到最底部
  scrollToBottom() {
    let that = this;
    wx.createSelectorQuery().select('.chat-container').boundingClientRect(function (rect) {
      console.log(rect);
      wx.pageScrollTo({
        selector:".chat-container",
        scrollTop: rect.height,
        duration: 100 // 滑动速度
      })
      that.setData({
        scrollTop: rect.height - that.data.scrollTop
      });
    }).exec();
  },
  sendMessage() {
    let { newMessage, messages,sending,questionId } = this.data;
    if (newMessage) {
      // 模拟用户B发送消息
      messages.push({ sender: 'me', text: newMessage });
      this.scrollToBottom(); 
      sending=true
      const message = newMessage
      // 更新聊天记录并清空输入框
      newMessage = '';
      this.setData({
        messages,
        newMessage,
        sending
      });
      request.get("/qianfan/chatWithAppBuilder?question=" + message + "&questionId=" + questionId +"&type=CHAT").then(res => {
        sending=false
        messages.push({ text: res.data, sender: 'other' });
        this.scrollToBottom(); // 滚动到最底部
        // 更新聊天记录并清空输入框
        this.setData({
          messages,
          sending,
          newMessage
        });
      })
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.scrollToBottom(); 
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  // 两秒钟后尝试获取用户信息
  this.scrollToBottom(); 
},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.scrollToBottom(); 
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})